<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 

class Pedido extends CI_Model {
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function criar($aPedido){
		
		$sSql = "
			INSERT INTO
				tb_pedido (
					qtde_pedido, 
					obs_pedido, 
					time_inicio_pedido, 
					status_pedido, 
					preco_pedido, 
					tb_produto_id_produto, 
					tb_produto_tb_categoria_id_categoria, 
					tb_comanda_id_comanda
				)
			VALUES (
				{$aPedido['qtde_pedido']},
				'{$aPedido['obs_pedido']}',
				CURRENT_TIMESTAMP,
				'pedido',
				{$aPedido['preco_pedido']},
				{$aPedido['id_produto']},
				{$aPedido['id_categoria']},
				{$aPedido['id_comanda']}
			)";
	
		return $this->db->query($sSql);
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function lerBar(){
		$sSql = "
			SELECT
				id_pedido,
				qtde_pedido,
				obs_pedido,
				DATE_FORMAT(time_inicio_pedido,'<i class=\'icon-calendarthree\'></i> %d %b - <i class=\'icon-alarm\'></i> %T') time_inicio_pedido,
				time_fim_pedido,
				TIMEDIFF(time_fim_pedido , time_inicio_pedido) tempo_pedido,
				status_pedido,
				preco_pedido,
				nome_produto,
				tb_usuario_login_usuario
			FROM
				tb_pedido p
			INNER JOIN
				(tb_comanda c, tb_produto pr, tb_categoria ca)
			ON
				p.tb_produto_id_produto = pr.id_produto AND
				p.tb_comanda_id_comanda = c.id_comanda AND
				ca.id_categoria = pr.tb_categoria_id_categoria
			WHERE
				responsavel_categoria = 'bar'
			AND time_inicio_pedido >= CURDATE()
			AND time_inicio_pedido < CURDATE() + INTERVAL 1 DAY
		";
	
		$oResultado = $this->db->query($sSql);
		return $oResultado->result_array();
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function lerCozinha(){
		$sSql = "
			SELECT
				id_pedido,
				qtde_pedido,
				obs_pedido,
				DATE_FORMAT(time_inicio_pedido,'<i class=\'icon-calendarthree\'></i> %d %b - <i class=\'icon-alarm\'></i> %T') time_inicio_pedido,
				time_fim_pedido,
				TIMEDIFF(time_fim_pedido , time_inicio_pedido) tempo_pedido,
				status_pedido,
				preco_pedido,
				nome_produto,
				tb_usuario_login_usuario
			FROM
				tb_pedido p
			INNER JOIN
				(tb_comanda c, tb_produto pr, tb_categoria ca)
			ON
				p.tb_produto_id_produto = pr.id_produto AND
				p.tb_comanda_id_comanda = c.id_comanda AND
				ca.id_categoria = pr.tb_categoria_id_categoria
			WHERE
				responsavel_categoria = 'cozinha'
			AND time_inicio_pedido >= CURDATE()
			AND time_inicio_pedido < CURDATE() + INTERVAL 1 DAY
		";
	
		$oResultado = $this->db->query($sSql);
		return $oResultado->result_array();
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function lerByLogin($sLogin){
		$sSql = "
		SELECT
			id_pedido,
			nome_produto,
			preco_pedido,
			tb_categoria_id_categoria,
			qtde_pedido,
			imagem_produto,
			id_produto,
			status_pedido
		FROM
			tb_pedido p
		INNER JOIN
			(tb_comanda c, tb_produto pr)
		ON
			p.tb_comanda_id_comanda = c.id_comanda
		AND
			p.tb_produto_id_produto = pr.id_produto
		WHERE
			tb_usuario_login_usuario = {$sLogin}
		AND
			c.status_comanda = 'Aberta'
		ORDER BY time_inicio_pedido DESC
		";
	
		$oResultado = $this->db->query($sSql);
		return $oResultado->result_array();
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function lerById($iIdPedido){
		$sSql = "
			SELECT
				*
			FROM
				tb_pedido
			WHERE
				id_pedido = {$iIdPedido}
		";
	
		$oResultado = $this->db->query($sSql);
		return $oResultado->row_array();
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function atualizar($sStatus, $iIdPedido){
		if ($sStatus == 'Entregue' || $sStatus == 'Cancelado') {
			$sSql = "
				UPDATE
					tb_pedido
				SET
					status_pedido = '{$sStatus}',
					time_fim_pedido = NOW()
				WHERE
					id_pedido = {$iIdPedido}
			";
		} else {
			$sSql = "
				UPDATE
					tb_pedido
				SET
					status_pedido = '{$sStatus}'
				WHERE
					id_pedido = {$iIdPedido}
				";
		}
		
		return $this->db->query($sSql);
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function deletar(){
	
	}
}

/* End of file Pedido.php */